#   --------------------------------注释区--------------------------------
#   入口:http://je2lehn23v-811808501.qsioumn2.cn/index/center/poster.html?pid=248848
#   
#  
#   需抓取数据: 
#   * 填写自动过检的api接口 本地 内网ip:5000 非本地自行进行穿透
#   * 不想跑的号可以填wxid到 yuanshen_ddzapi_notrun 多个#分割 注意是原始id
#   * 登录多少个账号就跑多少个账号
#   变量名:yuanshen_api
#
#   需要自动提现请填支付宝账号#姓名到 yuanshen_ddz_alipay 即可自动提现
#   抓取请求头中的user-agent填入yuanshen_useragent 无论多少个号都只填一个即可!!!!
#
# 下面是自定义变量设置(注意是修改对应的环境变量而不是改文件内容):
# huaji_ddz_max_threads           #最大线程数 默认1
# huaji_ddz_IsRun_ReadTask        #是否执行阅读任务 默认开启 开启1 关闭0
# huaji_ddz_IsRun_SphTask         #是否执行视频号任务 默认开启 不会进行真实关注 有被暂停任务的风险 开启1 关闭0
# huaji_ddz_IsRun_GzhTask         #是否执行公众号任务 默认开启 不会进行真实关注 有被暂停任务的风险 开启1 关闭0
#   --------------------------------祈求区--------------------------------
#                     _ooOoo_
#                    o8888888o
#                    88" . "88
#                    (| -_- |)
#                     O\ = /O
#                 ____/`---'\____
#               .   ' \\| |// `.
#                / \\||| : |||// \
#              / _||||| -:- |||||- \
#                | | \\\ - /// | |
#              | \_| ''\---/'' | |
#               \ .-\__ `-` ___/-. /
#            ___`. .' /--.--\ `. . __
#         ."" '< `.___\_<|>_/___.' >'"".
#        | | : `- \`.;`\ _ /`;.`/ - ` : | |
#          \ \ `-. \_ __\ /__ _/ .-` / /
#  ======`-.____`-.___\_____/___.-`____.-'======
#                     `=---='
# 
#  .............................................
#           佛祖保佑             永无BUG
#           佛祖镇楼             BUG辟邪
#   --------------------------------代码区--------------------------------
'''
Create at [2025-05-08 16:39:41]
'''
import requests
import os
import sys
import platform
import subprocess
import importlib
import datetime
from urllib.parse import urlparse
import logging
import socket
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] ===> %(message)s')
log = logging.getLogger(__name__)

THIS_Proxies = 'https://github.huaji.asia/'   # 网络不行就填Github代理 这里只给出一个要是不行就自己找 https://github.huaji.asia/

data = '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'
func = 'main'

GithubUrl = f"{THIS_Proxies.rstrip('/')}/https://raw.githubusercontent.com/huaji8/So_common/master/so" if THIS_Proxies else 'https://raw.githubusercontent.com/huaji8/So_common/master/so'
THIS_MODE = 'Huaji_SoLoader'
So_name = f'{THIS_MODE}.so'




def get_system_info() -> None:
    global Download_name
    python_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
    download_pyver = f'{sys.version_info.major}.{sys.version_info.minor}'
    processor_arch = platform.machine().replace('AMD64', 'x86_64').replace('x64', 'x86_64')
    system_name = platform.system()
    system_ver = platform.release() + " " + platform.version()
    system_arch = platform.architecture()[0]
    if system_name == "Darwin":
        system_name = "macOS"
        system_ver = platform.mac_ver()[0]
    elif system_name == "Windows":
        system_ver = f"{platform.release()} (Build {platform.win32_ver()[1]})"
    
    log.info(f"系统信息 [Python/{python_version}] [系统架构 {processor_arch}] [{system_name}/{system_ver} {system_arch}]")
    if download_pyver not in ['3.10','3.11','3.12']:
        log.error(f'当前Python版本不支持运行此脚本，请使用Python3.10或3.11或3.12运行此脚本,什么??你不重装,简单,删除本脚本然后睡觉觉就行了..')
        
    if processor_arch == 'x86_64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
    elif processor_arch == 'aarch64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_aarch64.so'
    else:
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
        
    if processor_arch not in ['x86_64', 'aarch64']:
        log.warning(f'当前系统架构大概率不支持运行此脚本...')
        return
    elif 'Linux' not in system_name:
        log.error(f'当前系统不支持运行此脚本，请使用Linux运行此脚本')
    else:
        log.info('系统检测通过,开始运行脚本')
        return
    
    
    
    exit()



def download_file(save_path: str = None) -> bool:
    url =  GithubUrl + '/' + Download_name
    
    try:
        try:
            socket.create_connection(("www.github.com", 80), timeout=5)
            socket.create_connection(("www.github.com", 443), timeout=5)
        except (socket.timeout, socket.gaierror):
            log.warning("无法连接到Github,大概率下载是失败的,请检查网络或使用代理")

        if not save_path:
            file_name = os.path.basename(urlparse(url).path) or "downloaded_file"
            save_path = os.path.join(os.getcwd(), file_name)
        if os.path.exists(save_path) and os.path.getsize(save_path) == 0:
            os.remove(save_path)
        save_dir = os.path.dirname(save_path)
        os.makedirs(save_dir, exist_ok=True)
        curl_cmd = "curl.exe" if platform.system() == "Windows" else "curl"
        cmd = [
            curl_cmd,
            "-L", 
            "-f",
            "--silent",
            "--show-error",
            "-o", save_path,
            "-m","180",
            url
        ]

        result = subprocess.run(
            cmd,
            check=True,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )


        if not os.path.exists(save_path):
            log.error(f"下载文件不存在: {save_path}")
            return False
        if os.path.getsize(save_path) == 0:
            os.remove(save_path)
            log.error(f"下载文件为空: {save_path}")
            return False
        if result.returncode != 0:
            log.error(f"下载失败: {result.stderr.strip()}")
            return False
        log.info(f"文件下载成功: {save_path}")
        os.rename(Download_name, So_name)
        return True

    except subprocess.CalledProcessError as e:
        error_msg = f"下载失败: {e.stderr.strip()}" if e.stderr else "未知curl错误"
        log.error(error_msg)
        return False
    except Exception as e:
        log.error(f"下载异常: {str(e)}")
        return False
    
def dynamic_import(module_name: str) -> object:
    return importlib.import_module(module_name)

    
def Run() -> None:
    if os.path.exists(So_name):
        log.info('so文件存在,开始运行')
        print('='*30)
        obj = dynamic_import(THIS_MODE)
        obj.run(func, data)
    else:
        log.info('so文件不存在,开始下载')
        if download_file():
            Run()
        else:
            log.error('下载失败,请检查网络或使用代理')


if __name__ == '__main__':
    get_system_info()
    Run()
